1. Field of the Invention
This invention is related to the field of storage management and, more particularly, to software used in storage management.
2. Description of the Related Art
In the past, large organizations relied heavily on parallel SCSI technology to provide the performance required for their enterprise data storage needs. More recently, organizations are recognizing that the restrictions imposed by SCSI architecture are too costly for SCSI to continue as a viable solution. Such restrictions include the following:                SCSI disk arrays must be located no more than 25 meters from the host server;        The parallel SCSI bus is susceptible to data errors resulting from slight timing discrepancies or improper port termination; and        SCSI array servicing frequently requires downtime for every disk in the array.        
One solution has been to create technology that enables storage arrays to reside directly on the network, where disk accesses may be made directly rather than through the server's SCSI connection. This network-attached storage (NAS) model eliminates SCSI's restrictive cable distance, signal timing, and termination requirements. However, it adds a significant load to the network, which frequently is already starved for bandwidth. Gigabit Ethernet technology only alleviates this bottleneck for the short term, so a more elegant solution is desirable.
The storage area network (SAN) model places storage on its own dedicated network, removing data storage from both the server-to-disk SCSI bus and the main user network. This dedicated network most commonly uses Fibre Channel technology, a versatile, high-speed transport. The SAN includes one or more hosts that provide a point of interface with LAN users, as well as (in the case of large SANs) one or more fabric switches, SAN hubs and other devices to accommodate a large number of storage devices. The hardware (e.g. fabric switches, hubs, bridges, routers, cables, etc.) that connects workstations and servers to storage devices in a SAN is referred to as a “fabric.” The SAN fabric may enable server-to-storage device connectivity through Fibre Channel switching technology to a wide range of servers and storage devices. The versatility of the SAN model enables organizations to perform tasks that were previously difficult to implement, such as LAN-free and server-free tape backup, storage leasing, and full-motion video services.
Storage devices in SANs may be managed and accessed through services that may be installed (e.g. as plugins) on hosts in the SAN. Each service manages a separate vendor and model of array hardware. For example, one might manage a Compaq RA8000, another an EMC Symmetrix, another a Hitachi 9900. These services may allow management of the storage device (e.g. allocation of storage) through the management interface of the storage device. Some storage devices require direct connection to discover all the device information using the particular vendor's APIs. Typically, it is not desirable to install services on a host for every provider and model number because the stack would be too large.
Storage device interfaces are typically limited in terms of the number of allowed client connections, posing a scalability problem. SAN storage devices typically only allow one host to manage a particular storage device. Typically, the storage devices have no locking; i.e. the devices have no ability to service a request from one host in a locked mode, then unlock, lock and service a request from another host. Storage device APIs from vendors typically do not support events. If a change is made to the configuration, a host may not know about the change unless and until the host polls for changes. Hosts may have a controllable polling interval, and for overhead reasons it may not be desirable to poll too frequently. A host may only poll for changes every 15 minutes to half hour, for example. In prior art SAN system, every host node typically discovers everything; this may result in additional scalability problems due to the overhead involved in polling. Further, some SAN devices may use protocols (e.g. SNMP) that may not be scalable due to performance constraints. For example, it may take five minutes to “discover” a disk array using SNMP; if there 100 arrays, it may take 500 minutes of polling happening every 30 minutes to discover all of the arrays. An array typically cannot support that many hosts having access to the services.
This limited scalability may block access to distributed data. Multiple hosts may desire to run services to manage and access particular storage devices, but the scalability limitations may prevent more than one, two or three hosts from doing so. Thus, it is desirable to provide distributed storage management services that overcome the scalability problems in prior art SAN systems.